iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
自我挑戰組

轉職軟體工程師的543系列 第 20

【Day 20】JavaScript 流程控制與例外處理

  • 分享至 

  • xImage
  •  

資料結構及型別

JavaScript 定義了七種資料型別:

1.Boolean布林 : false and true
(1)被轉型為 false 的值有 :

  • 沒傳值
  • "" 空字串
  • 0, -0, NaN
  • null
  • undefined
  • false
  • DOM 物件 document.all被傳入後,也會將其初始化為false。

(2)被轉為 true :

  • 其他的值,包含所有物件或"false"字串,都會使其初始化為true。

2.null : 表示空值的特殊關鍵字,因為JavaScript是大小有別,這裡指的是null,不是Null、NULL或者任何其它變體。
3.undefined 未定義。
4.Number 數字。
5.String 字串。
6.Symbol 創建一個獨一無二的值。(但符號不支援“自動轉換”為字串)。
7.Object物件。

區塊陳述式

{
  陳述式 1;
  陳述式 2;
  .
  .
  .
  陳述式 n;
}

區塊陳述式經常與流程控制陳述式(例如:if、for、while)搭配使用。

while (x < 10) {
  x++;
}
在這裏,{ x++; } 是區塊陳述式。

條件陳述式

條件陳述式是一些在指定條件爲真下將被執行的指令。 JavaScript 支援兩種條件陳述式: if...else 和 switch
if...else 陳述式
if 陳述式將在「邏輯判斷爲真」下執行接下來的一個陳述式。選擇性的 else 陳述式將會在「邏輯判斷爲否」時被執行。 if 陳述式的用法看起來如下:

if (指定條件) {
  陳述式 1;
} else {
  陳述式 2;
}

也可以藉由 else if 來使用複合的陳述式來測試多種不同的條件,如下:

if (指定條件1) {
  陳述式 1;
} else if (指定條件 2) {
  陳述式 2;
} else if (指定條件 n) {
  陳述式 n;
} else {
  最後陳述式;
}

switch 陳述式

程序首先尋找一個標籤與運算式的值匹配的 case 子句,並執行與其相關的陳述式。 如果省略 break,程序將繼續在 switch 陳述式中的下一個陳述式執行。

switch (運算式) {
  case 標籤 1:
    陳述式 1
    [break;]
  case 標籤 2:
    陳述式 2
    [break;]
    ...
  default:
    陳述式
    [break;]
}

例外處理陳述式

throw 陳述式

使用 throw 陳述式拋出例外。當拋出例外時,要指定包含在要拋出物件中的值:

throw expression;

try...catch 陳述式

try...catch 陳述式標記了一組要嘗試的陳述式,並在拋出例外時指定一個或多個響應。 如果例外被拋出,try...catch 陳述式捕獲它。

try {
  throw "myException"; // 產生例外
}
catch (e) {
  // 用於處理例外的陳述式
  logMyErrors(e); // 將例外物件傳給 error handler
}

finally 區塊

finally 區塊中包含在 try 和 catch 區塊執行之後但在 try...catch 陳述式之後的陳述式之前 執行的陳述式。 無論是否拋出例外,finally 區塊都會執行。 如果拋出例外,則即使沒有 catch 區塊處理例外,finally 區塊中的陳述式也會執行。

openMyFile();
try {
  writeMyFile(theData); // 可能產生例外
} catch(e) {
  handleError(e); // 處理可能發生的例外
} finally {
  closeMyFile(); // 總是在 try 結束後關閉檔案
}

上一篇
【Day 19】JavaScript 宣告和變數
下一篇
【Day 21】JavaScript 函式
系列文
轉職軟體工程師的54330
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言